package com.jiyinit.web.core.mobile.enums;

import com.jiyinit.core.framework.base.util.Check;

/**
 * Protobuf enum {@code MsgTypeEnum}
 */
public enum FileTypeEnum {

    /**
     * <pre>
     * *&lt; 文本消息
     * </pre>
     * <p>
     * <code>TEXT = 0;</code>
     */
    TEXT(0, "文本"),
    /**
     * <pre>
     * *&lt; 图片消息
     * </pre>
     * <p>
     * <code>IMG = 1;</code>
     */
    IMG(1, "聊天图片", "img/chatFile/"),
    /**
     * <pre>
     * *&lt; 通知消息
     * </pre>
     * <p>
     * <code>NOTICE = 2;</code>
     */
    NOTICE(2, "通知"),
    /**
     * <pre>
     * *&lt; 语音消息
     * </pre>
     * <p>
     * <code>VOICE = 3;</code>
     */
    VOICE(3, "语音"),
    /**
     * <pre>
     * *&lt; 未知的消息类型
     * </pre>
     * <p>
     * <code>Unknow = 4;</code>
     */
    Unknow(4, "未知"),
    /**
     * <pre>
     * *&lt; Gif动画图片消息
     * </pre>
     * <p>
     * <code>GifImage = 5;</code>
     */
    GifImage(5, "动图"),
    /**
     * <pre>
     * *&lt; 消息发生的日期时间Cell
     * </pre>
     * <p>
     * <code>DateTime = 6;</code>
     */
    DateTime(6, "日期时间"),
    /**
     * <pre>
     * *&lt; 视频消息
     * </pre>
     * <p>
     * <code>Video = 7;</code>
     */
    Video(7, "视频"),
    /**
     * <pre>
     * *&lt; 视频呼叫
     * </pre>
     * <p>
     * <code>VideoCall = 8;</code>
     */
    VideoCall(8, "视频通话"),
    /**
     * <pre>
     * *&lt; 地理位置消息
     * </pre>
     * <p>
     * <code>Location = 9;</code>
     */
    Location(9, "地理位置信息"),
    /**
     * <pre>
     * *&lt; 音频呼叫
     * </pre>
     * <p>
     * <code>VoiceCall = 10;</code>
     */
    VoiceCall(10, "音频呼叫"),

    BlueWall(11, "蓝墙", "img/blueWall/"),

    JiaoLiuYuanDi(12, "交流园地", "img/jiaoLiuYuanDi/"),
    ;

    /**
     * 文件类型
     */
    private int type;
    /**
     * 文件名称
     */
    private String name;
    /**
     * 保存路径
     */
    private String saveUrl;

    FileTypeEnum(int type,String name) {
        this.type = type;
        this.name = name;
    }
    FileTypeEnum(int type,String name, String saveUrl) {
        this.type = type;
        this.name = name;
        this.saveUrl = saveUrl;
    }

    public int getType() {
        return type;
    }

    public String getName() {
        return name;
    }

    public String getSaveUrl(){
        return saveUrl;
    }

    public static String getName(String type){
        if(!Check.isNullStrStrict(type)){
            int tpCode = Integer.valueOf(type);
            FileTypeEnum[] values = FileTypeEnum.values();
            for (FileTypeEnum fileEnum: values ) {
                if(tpCode == fileEnum.getType()){
                    return fileEnum.getName();
                }
            }
        }
        return "";
    }

    public static String getSaveUrl(String type){
        if(!Check.isNullStrStrict(type)){
            int tpCode = Integer.valueOf(type);
            FileTypeEnum[] values = FileTypeEnum.values();
            for (FileTypeEnum fileEnum: values ) {
                if(tpCode == fileEnum.getType()){
                    return fileEnum.getSaveUrl();
                }
            }
        }
        return "img/default/";
    }
}

